var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Goods = require('../models/goods');

// 连接数据库
// 设置了账号密码的方式：
// mongoose.connect('mongodb://root:123456@127.0.0.1:27017/dumall');
// 未设置账号密码的方式,dumall为数据库名字
mongoose.connect('mongodb://47.94.238.228:27017/mall');

// 连接成功
mongoose.connection.on('connected', function() {
	console.log("mongodb connected success");
});

// 连接失败
mongoose.connection.on('error', function() {
	console.log("mongodb connected fail");
});

// 连接断开
mongoose.connection.on('disconnected', function() {
	console.log("mongodb connected disconnected");
});

// 查询商品列表数据
router.get('/list', function(req, res, next) {
	// 排序的实现,get请求可以通过params获取参数
	let sort = req.param('sort');
	// 分页
	let page = parseInt(req.param('page'));
	let pageSize = parseInt(req.param('pageSize'));
	let skip = (page-1)*pageSize;
	// 价格分类
	let priceLevel = req.param('priceLevel');
	var params = {};
	var priceGt = '',priceLt = '';
	// 价格分类
	if (priceLevel != 'all') {
		switch (priceLevel) {
			case '0': priceGt = 0;priceLt= 100; break;
			case '1': priceGt = 100;priceLt= 500; break;
			case '2': priceGt = 500;priceLt= 1000; break;
			case '3': priceGt = 1000;priceLt= 2000; break;
		}
		params = {
			salePrice: {
				$gt: priceGt,
				$lte: priceLt
			}
		}
	}
	// 通过limit分页只能传数字类型，每次有pagesize条数据
	let goodsModel = Goods.find(params).skip(skip).limit(pageSize);
	// 自带的sort函数，对salePrice字段排序,sort中1是
	// 升序，-1是降序
	goodsModel.sort({'salePrice': sort});
	// 通过exec来执行上面的方法
	goodsModel.exec(function(err, doc) {
		if (err) {
			res.json({
				status: '1',
				msg: err.message
			});
		} else {
			res.json({
				status: '0',
				msg: '',
				result:{
					count: doc.length,
					list: doc
				}
			})
		}
	});// 模型里面封装了find方法
});

// 加入购物车
router.post('/addCart', function(req, res, next) {
	var userId = req.cookies.userId, productId = req.body.productId;
	var user = require('../models/user');

	user.findOne({userId: userId}, function(err, doc) {
		if (err) {
			res.json({
				status: '1',
				msg: err.message
			})
		} else {
			if (doc) {
				let goodsItem = '';
				doc.cartList.forEach(function(item) {
					if (item.productId == productId) {
						goodsItem = item;
						item.productNum ++;
					}
				});
				if (goodsItem) {
					doc.save(function (err2, doc2) {
						if (err2) {
							res.json({
								status: '1',
								msg: err2.message
							})
						} else {
							if (doc2) {
								res.json({
									status: '0',
									msg: '',
									result: 'success'
								});
							}
						}
					});
				} else {
					Goods.findOne({productId: productId}, function(err1, doc1) {
						if (err1) {
							res.json({
								status: '1',
								msg: err1.message
							})
						} else {
							if (doc1) {
								doc1.productNum = 1;
								doc1.checked = 1;
								console.log(doc1);
								// 将商品信息加到users下的cartList数组中
								doc.cartList.push(doc1);
								doc.save(function (err2, doc2) {
									if (err2) {
										res.json({
											status: '1',
											msg: err2.message
										})
									} else {
										if (doc2) {
											res.json({
												status: '0',
												msg: '',
												result: 'success'
											});
										}
									}
								});
							}
						}
					});
				}
				
			}
		}
	});
})
module.exports = router;
